/*
    axios的封装返回一个promise对象
 */

import axios from 'axios'

// import router from '@/router'

// 非组件获取 store 一定使用这种方式
import store from '@/store/'

import JSONbig from 'json-bigint'

// const refreshTokenReq = axios.create({
//     baseURL: 'http://localhost:8080/api/v1'
// })

const request = axios.create({
  baseURL: 'http://localhost:8080/api/v1',
  //js的安全有效范围
  transformResponse: [function (data) {
    try {
      // 转换成功直接返回
      return JSONbig.parse(data)
    } catch (error) {
      // 转换失败
      // console.log('转换失败',error)
      return data
    }
  }]
})

// 设置请求拦截器
request.interceptors.request.use(config => {
  // console.log(config)
  const {
    user
  } = store.state
  if (user) {
    config.headers.Authorization = `${user.token}`
  }
  return config;
}, (error) => {
  return Promise.reject(error)
})

export default request;
